Matthias Clasen [Thu, 13 Jun 2019 12:17:54 +0000 (12:17 +0000)]
Merge branch 'wip/matthiasc/context-menu' into 'master'
context menu api
See merge request GNOME/gtk!539
Matthias Clasen [Wed, 12 Jun 2019 03:02:15 +0000 (03:02 +0000)]
color chooser: Use a popover menu
Make the color chooser use a popover menu
and actions.
Matthias Clasen [Wed, 12 Jun 2019 01:34:19 +0000 (01:34 +0000)]
link button: Use new context menu api
Matthias Clasen [Thu, 11 Apr 2019 18:48:06 +0000 (14:48 -0400)]
treeview: Stop disabling the context menu
Matthias Clasen [Tue, 5 Feb 2019 08:52:38 +0000 (03:52 -0500)]
places sidebar: remove populate-popup
Matthias Clasen [Tue, 5 Feb 2019 08:52:03 +0000 (03:52 -0500)]
cell renderer: remove populate-popup
Matthias Clasen [Tue, 29 Jan 2019 00:14:36 +0000 (19:14 -0500)]
widget-factory: Redo the context menu example
Redo the context menu on the page1 text view in
terms of actions.
Matthias Clasen [Sun, 27 Jan 2019 05:57:42 +0000 (00:57 -0500)]
gtk-demo: Rewrite the search entry demo
Port this from ::populate-popup to the new context
menu api. At the same time, fix some parts of the demo
that were broken since it was changed to use GtkStearchEntry.
Matthias Clasen [Tue, 29 Jan 2019 00:56:08 +0000 (19:56 -0500)]
textview: Support toggle actions
When creating a touch selection bubble, create toggle
buttons for toggle actions.
Matthias Clasen [Mon, 28 Jan 2019 21:47:53 +0000 (16:47 -0500)]
textview: Redo context menus
Drop the ::populate-popup signal and implement
the new context menu api.
Matthias Clasen [Sun, 27 Jan 2019 21:43:54 +0000 (16:43 -0500)]
label: Redo context menus
Drop the ::populate-popup signal and implement
the new context menu api. Things are a bit more
complicated here, since we have different menus
on links and selectable text.
Matthias Clasen [Thu, 11 Apr 2019 18:46:55 +0000 (14:46 -0400)]
password entry: Adapt to new context menu api
Matthias Clasen [Thu, 11 Apr 2019 18:47:20 +0000 (14:47 -0400)]
text: Add a context action for visibility
This will be used by GtkPasswordEntry for amending
the context menu.
Matthias Clasen [Mon, 8 Apr 2019 04:27:59 +0000 (04:27 +0000)]
text, entry: Implement context menu api
Drop the ::populate-popup signal and implement
the new context menu api.
Matthias Clasen [Thu, 13 Jun 2019 00:13:21 +0000 (00:13 +0000)]
popover menu: Unify hover and focus
Menus traditionally don't have separate
hover and focus locations. Make the same
change here that we already did for
popover menubars: Track the active item
and set its selected state. Both keynav
and mouse change the active item.
Matthias Clasen [Thu, 13 Jun 2019 00:12:33 +0000 (00:12 +0000)]
popover menubar: Use a pseudo state
Use :selected instead of .active to
mark the active item.
Matthias Clasen [Thu, 13 Jun 2019 00:11:32 +0000 (00:11 +0000)]
popover: Improve the move-focus fix
Avoid breaking menubar keynav (we still
need the focus change to be propagated
down from the root).
Matthias Clasen [Wed, 12 Jun 2019 19:54:26 +0000 (19:54 +0000)]
popover menu bar: Don't leave active item behind
When the mouse leaves the bar, turn the lights off.
Matthias Clasen [Wed, 12 Jun 2019 19:07:29 +0000 (19:07 +0000)]
wayland: Fix the popover race workaround
The Wayland backend has a hack to work around
a race with popover mapping: If the surface size
changes before the initial configure, we hide and
show the surface. Unfortunately, the code was doing
this in a way that is externally observable (by
listening for surface state changes), and popovers
were observing it and hiding themselves in response.
Avoid this by not going through the GDK frontend
code for this.
Matthias Clasen [Wed, 12 Jun 2019 16:55:43 +0000 (16:55 +0000)]
popover menu: Add our own activate key bindings
This solves issues with parent widgets, like combobox
or entry, installing their own bindings for these
keys, overriding the activation behavior that
is implemented in gtkwindow.
Matthias Clasen [Wed, 12 Jun 2019 16:54:57 +0000 (16:54 +0000)]
popover: Bring back the activate-default signal
As long as key bindings only work via action
signals, we need a signal here in order to
override the Enter/Space bindings for popover
menus.
Matthias Clasen [Wed, 12 Jun 2019 16:35:36 +0000 (16:35 +0000)]
popover menu: Add our own focus key bindings
This solves issues with parent widgets, like textview
or scrolled window or combobox installing their own
bindings for these keys, overriding the focus behavior
that is implemented in gtkwindow.
Matthias Clasen [Wed, 12 Jun 2019 00:56:40 +0000 (00:56 +0000)]
color editor: Don't leak adjustments
Matthias Clasen [Wed, 12 Jun 2019 00:57:01 +0000 (00:57 +0000)]
color editor: Fix numerical oddities
This is probably ue to a pass through gtk-builder-tool.
Matthias Clasen [Wed, 12 Jun 2019 16:18:36 +0000 (16:18 +0000)]
Merge branch 'wip/dboles/scrolledwindow-annotations' into 'master'
ScrolledWindow: Replace deprecated annotations; add (nullable) to set_[hvadjustment]()
See merge request GNOME/gtk!868
Emmanuele Bassi [Wed, 12 Jun 2019 11:18:05 +0000 (11:18 +0000)]
Merge branch 'layout-avoid-native' into 'master'
layout managers: Handle native children
See merge request GNOME/gtk!926
Jakub Steiner [Fri, 7 Jun 2019 08:46:42 +0000 (10:46 +0200)]
Adwaita: update treeview progressbars
- The style resembles Clearlooks and is way outdated.
https://gitlab.gnome.org/GNOME/gtk/issues/1938
Matthias Clasen [Wed, 12 Jun 2019 01:04:53 +0000 (01:04 +0000)]
Merge branch 'wip/chergert/profiler-gtk4-dbus-api' into 'master'
gtkapplication: track changes to profiler D-Bus API
See merge request GNOME/gtk!919
Matthias Clasen [Mon, 10 Jun 2019 18:01:59 +0000 (18:01 +0000)]
layout managers: Handle native children
Add a convenience api to skip children
that should not be included in the layout,
and call gtk_native_check_resize on all
native children outside of the vfunc.
Matthias Clasen [Mon, 10 Jun 2019 21:40:14 +0000 (21:40 +0000)]
text: Fix selection bubble handling
Same fix as the previous commit.
Matthias Clasen [Mon, 10 Jun 2019 21:39:14 +0000 (21:39 +0000)]
text view: Fix selection bubble handling
We can't call gtk_widget_destroy on something
that wasn't added as a child to a container -
it ends up calling gtk_container_remove, which
asserts if it doesn't find the child.
Matthias Clasen [Mon, 10 Jun 2019 23:33:36 +0000 (23:33 +0000)]
popover menu: Set autohide
This is the expected behavior for menus.
Matthias Clasen [Tue, 11 Jun 2019 17:36:40 +0000 (17:36 +0000)]
Merge branch 'focusable-containers' into 'master'
Focusable containers
See merge request GNOME/gtk!929
Matthias Clasen [Tue, 11 Jun 2019 17:10:16 +0000 (17:10 +0000)]
Add a focus-chain test for focusable containers
Matthias Clasen [Tue, 11 Jun 2019 17:09:10 +0000 (17:09 +0000)]
widget: Improve focus handling
Make gtk_widget_real_focus do the right
thing for focusable widgets with children.
A case where this is (now) relevant is
an entry with a context popover.
Matthias Clasen [Tue, 11 Jun 2019 15:48:07 +0000 (15:48 +0000)]
testsuite: Be robust against broken focus
When we start cycling on a subset, abort
after a while.
Matthias Clasen [Tue, 11 Jun 2019 14:53:08 +0000 (14:53 +0000)]
testsuite: more focus-chain output
Differentiate between wrapping around and
stopping at the end of the focus chain.
Update the existing tests, and add two
new ones where the difference matters.
Matthias Clasen [Tue, 11 Jun 2019 14:28:04 +0000 (14:28 +0000)]
Merge branch 'focus-chain-test' into 'master'
Focus chain test
See merge request GNOME/gtk!927
Matthias Clasen [Tue, 11 Jun 2019 14:11:28 +0000 (14:11 +0000)]
Add a focus chain test
Add a test that enumerates the focus chain by
emitting move-focus repeatedly, and compares
the result to expected output.
The test expects a ui file and a reference
file as input. The reference file can be created
using the --generate option.
Matthias Clasen [Tue, 11 Jun 2019 13:14:25 +0000 (13:14 +0000)]
window: Fix focus wraparound
If tab focus falls off the end, and we have an empty headerbar,
we end up with window->focus == NULL. Don't let that happen
Daniel Mustieles [Tue, 11 Jun 2019 10:56:08 +0000 (12:56 +0200)]
Updated Spanish translation
Yuras Shumovich [Mon, 10 Jun 2019 17:19:08 +0000 (17:19 +0000)]
Update Belarusian translation
Matthias Clasen [Mon, 10 Jun 2019 03:10:13 +0000 (03:10 +0000)]
Rename a bunch of private headers
We want to follow the convention that all
private headers have names ending in private.h
Matthias Clasen [Mon, 10 Jun 2019 02:19:53 +0000 (02:19 +0000)]
Adwaita: Make selection in menus visible
Benjamin Otte [Sun, 9 Jun 2019 21:35:15 +0000 (21:35 +0000)]
Merge branch 'for-master' into 'master'
testsuite: Make creating the output dir not racy
Closes #1942
See merge request GNOME/gtk!924
Benjamin Otte [Sun, 9 Jun 2019 19:49:44 +0000 (21:49 +0200)]
testsuite: Make creating the output dir not racy
Fixes #1942
Georges Basile Stavracas Neto [Sun, 9 Jun 2019 18:50:43 +0000 (18:50 +0000)]
Merge branch 'gbsneto/install-gtkpopovermenubar-h' into 'master'
Install gtkpopovermenubar.h
See merge request GNOME/gtk!923
Georges Basile Stavracas Neto [Sun, 9 Jun 2019 18:40:55 +0000 (15:40 -0300)]
build: Install gtkpopovermenubar.h
It is not listed in 'gtk_public_headers', so it is not
installed, and breaks anyone including gtk.h
Matthias Clasen [Sun, 9 Jun 2019 18:13:55 +0000 (18:13 +0000)]
Merge branch 'new-style-menu' into 'master'
New style menu
See merge request GNOME/gtk!916
Matthias Clasen [Sun, 9 Jun 2019 16:53:59 +0000 (16:53 +0000)]
popovermenubar: Add docs
Matthias Clasen [Sun, 9 Jun 2019 16:45:50 +0000 (16:45 +0000)]
Typo fix
Matthias Clasen [Sun, 9 Jun 2019 16:19:07 +0000 (16:19 +0000)]
Rename GtkPopoverBar to GtkPopoverMenuBar
Clarity over beauty.
Matthias Clasen [Sun, 9 Jun 2019 16:04:12 +0000 (16:04 +0000)]
popover bar: Add setters
Add setters/getters for the menu-model property.
Matthias Clasen [Sun, 9 Jun 2019 15:24:37 +0000 (15:24 +0000)]
Adwaita: Adapt to popover bar changes
Add some initial styling for popover bars
and popover menus. This needs revision.
Matthias Clasen [Sun, 9 Jun 2019 15:23:47 +0000 (15:23 +0000)]
popoverbar: Use a box layout
Its the cool way to do layout these days.
Matthias Clasen [Sun, 9 Jun 2019 14:09:20 +0000 (14:09 +0000)]
main: Warn if GDK sends us bad focus events
The new rule for focus events from the windowing
system is: We only want them for toplevels. If you
put focus on popups, we don't want to know about
it, and you still need to deliver key events to
the toplevel.
Matthias Clasen [Sun, 9 Jun 2019 14:08:18 +0000 (14:08 +0000)]
popover menu: Disappear on focus out
We try to keep focus inside by wrapping arrow keynav.
But focus can still escape. If it does, we want to
disappear, like any good menu should.
Matthias Clasen [Sun, 9 Jun 2019 14:03:40 +0000 (14:03 +0000)]
popover bar: Don't grab focus away from open menus
It makes them unhappy and disappear.
Matthias Clasen [Sun, 9 Jun 2019 04:19:40 +0000 (04:19 +0000)]
Expand focus tests
Matthias Clasen [Sun, 9 Jun 2019 02:25:12 +0000 (02:25 +0000)]
popover menu: Implement focus
We want to cycle around for up/down arrows.
Matthias Clasen [Sun, 9 Jun 2019 02:23:47 +0000 (02:23 +0000)]
popover bar: Implement focus
This is the proper way to do focus.
We want to cycle around for left/right arrows.
Matthias Clasen [Sun, 9 Jun 2019 02:21:05 +0000 (02:21 +0000)]
model button: Make left/right switch submenus
This is expected menu keynav behavior: If the
focused item has a submenu, open it on right
arrow press. And if we are in a submenu title,
make left arrow press close it.
Matthias Clasen [Sun, 9 Jun 2019 02:19:30 +0000 (02:19 +0000)]
menu button: Use proper focus api
Widgets are supposed to call gtk_widget_child_focus.
Calling internal focus_move function directly makes
us skip the childs ::focus() implementation, which
is where the magic happens.
Matthias Clasen [Sat, 8 Jun 2019 17:48:29 +0000 (17:48 +0000)]
popover bar: Add arrow keynav
Make left/right cycle the active item
among the bars children. Separate the styling
for the active item from :hover, since it is
a separate state, and only mixed up in menus
for historical reasons.
Matthias Clasen [Sat, 8 Jun 2019 15:28:22 +0000 (15:28 +0000)]
widget-factory: Move the popover bar to the ui file
Matthias Clasen [Sat, 8 Jun 2019 15:27:52 +0000 (15:27 +0000)]
popover bar: Add a model property
This makes it less annoying to use in ui files.
Matthias Clasen [Sat, 8 Jun 2019 13:46:38 +0000 (13:46 +0000)]
widget-factory: Don't use Return as accel
This is a bad idea, as it interacts badly with
general use of Return for activation.
Matthias Clasen [Sat, 8 Jun 2019 13:42:18 +0000 (13:42 +0000)]
popover bar: Break out items
These will grow enough functionality that its
worth having an object for it.
Matthias Clasen [Sat, 8 Jun 2019 13:40:59 +0000 (13:40 +0000)]
label: Fix mnemonic visibility handling
With non-widgets having children, we can no
longer assume that using gtk_container_forall
lets us walk the entire tree.
Matthias Clasen [Sat, 8 Jun 2019 13:40:37 +0000 (13:40 +0000)]
widget factory: Add mnemonics in popovers
These don't work!
Matthias Clasen [Sat, 8 Jun 2019 13:39:53 +0000 (13:39 +0000)]
gdk: Always deliver key events to toplevels
This is just a hack to see that this works.
Eventually, the backends should do the right
thing.
Matthias Clasen [Sat, 8 Jun 2019 03:23:22 +0000 (03:23 +0000)]
popover bar: towards menubar-like behavior
Make the open popover follow the pointer.
Matthias Clasen [Sat, 8 Jun 2019 03:16:31 +0000 (03:16 +0000)]
widget: Ignore natives for picking
The natives transforms are not set up properly
to make this work, so ignore them here, for now.
This my need to be revisited later.
Matthias Clasen [Sat, 8 Jun 2019 03:14:02 +0000 (03:14 +0000)]
popover: Respect alignment for positioning
We lost the code that takes the halign of
the popover into account when positioning it.
Bring it back, since we want to use it for
popover menus.
Matthias Clasen [Fri, 7 Jun 2019 18:05:57 +0000 (18:05 +0000)]
widget factory: Redo the menubar with a model
No UI change intended, except for the fact that
actions don't do inconsistent states for checks
and radios.
Matthias Clasen [Fri, 7 Jun 2019 23:27:24 +0000 (23:27 +0000)]
Introduce a popover bar
This is meant to grow into a menubar replacement
with popovers. For now, it is just a box of menubuttons,
and not very much like a menubar at all.
Matthias Clasen [Fri, 7 Jun 2019 17:05:48 +0000 (17:05 +0000)]
Rationalize popover menu apis
Make gtk_popover_new_from_model() return a GtkPopoverMenu,
rename it to gtk_popover_menu_new_from_model() and add
a relative_to argument to gtk_popover_menu_new().
Update all callers.
Matthias Clasen [Fri, 7 Jun 2019 15:37:08 +0000 (15:37 +0000)]
Stop exporting gtk_popover_bind_model
We can't improve popover menus as long as we
have to be able to work with any old popover
we're given. Remove this, so we can make
gtk_popover_new_from_model return a subclass.
Matthias Clasen [Fri, 7 Jun 2019 03:20:45 +0000 (03:20 +0000)]
box layout: Handle native children
These need to be skipped in measuring,
and we need to call gtk_native_check_resize
on them during allocation.
This was showing up as the new-style
context menu in widget-factory forcing
its relative-to box to grow when its
shown.
Matthias Clasen [Fri, 7 Jun 2019 02:37:24 +0000 (02:37 +0000)]
modelbutton: Sizing fixes
We only want to reserve indicator size if
there are any checks or radios in the popover.
Unfortunately, GtkIcon has a hardcoded min-size
of 16, defeating this use. Work around by
wrapping each indicator in a box, and showing/
hiding the actual indicator.
Matthias Clasen [Fri, 7 Jun 2019 01:25:59 +0000 (01:25 +0000)]
widget factory: Add a context menu example
This is also taken from
https://gitlab.gnome.org/Teams/Design/os-mockups/blob/master/menus/menu-design-patterns.png
Matthias Clasen [Thu, 6 Jun 2019 18:08:52 +0000 (18:08 +0000)]
popover menu: Fix style classes
We want the same style classes that are produced
when creating a popover from a menu model.
Matthias Clasen [Thu, 6 Jun 2019 18:08:13 +0000 (18:08 +0000)]
widget factory: Improve manual popover menu example
Set up the size group, so things line up.
Matthias Clasen [Thu, 6 Jun 2019 01:37:37 +0000 (01:37 +0000)]
widget-factory: Redo the new-style menu
Do this from a menu model first, since that
is easier to get right.
Matthias Clasen [Fri, 7 Jun 2019 13:03:10 +0000 (13:03 +0000)]
menu section box: Add style classes for display hints
This makes it easier to realize some of the new
styles for popover menus.
Matthias Clasen [Thu, 6 Jun 2019 01:36:17 +0000 (01:36 +0000)]
menu section box: Introduce more section variants
Allow display-hint to be circular-buttons or
inline-buttons, to produce variations of horizontal
button layouts.
Matthias Clasen [Thu, 6 Jun 2019 23:04:52 +0000 (23:04 +0000)]
model button: Look up accels if needed
When we are not given an explicit accel (as is
the case when the popover is constructed from
a model), then look it up from the GtkApplication
at map time.
Matthias Clasen [Fri, 7 Jun 2019 13:02:45 +0000 (13:02 +0000)]
model button: Show shortcuts
Most of the machinery for this is already
in place. We just need to add an accel property
to GtkMenuButton and pass it through.
Matthias Clasen [Thu, 6 Jun 2019 00:41:45 +0000 (00:41 +0000)]
model button: Redo layout
Move checks to the left, and introduce a size group
to align things. The size group is provided by the
parent, using the new ::indicator-size-group property.
Matthias Clasen [Wed, 5 Jun 2019 19:36:35 +0000 (19:36 +0000)]
widget-factory: Add another popover menu example
This one is taken from
https://gitlab.gnome.org/GNOME/gtk/issues/1824
Matthias Clasen [Wed, 5 Jun 2019 22:31:14 +0000 (22:31 +0000)]
model button: Drop centered, inverted properties
These properties were only useful for titles,
and we have a role for that now.
Matthias Clasen [Wed, 5 Jun 2019 21:22:01 +0000 (21:22 +0000)]
model button: Add a role for titles
This gets us out of using direct presentational
markup like 'inverted' and 'centered' and will
make it easier to play with different layout.
Use the new role when creating popover
menus from models.
Matthias Clasen [Wed, 5 Jun 2019 19:33:43 +0000 (19:33 +0000)]
model button: Small fixes
Make iconic model buttons work better.
Piotr Drąg [Sun, 9 Jun 2019 15:29:12 +0000 (17:29 +0200)]
Update POTFILES.skip
Christian Hergert [Fri, 7 Jun 2019 00:24:33 +0000 (17:24 -0700)]
gtkapplication: track changes to profiler D-Bus API
Recently, to make things more forward-portable, Sysprof and Mutter altered
the API for org.gnome.Sysprof3.Profiler. This tracks those changes.
Christian Hergert [Thu, 6 Jun 2019 23:08:13 +0000 (16:08 -0700)]
config.h: fix stray #
Matthias Clasen [Thu, 6 Jun 2019 22:39:44 +0000 (22:39 +0000)]
Merge branch 'wip/chergert/set-va-marshallers' into 'master'
va_marshaller: add various va_marshallers
See merge request GNOME/gtk!917
Christian Hergert [Thu, 6 Jun 2019 22:27:54 +0000 (15:27 -0700)]
va_marshaller: add various va_marshallers
We don't need to cover every case with a va_marshaller, but there are a
number of them that are useful because they will often only be connected
to by a single signal handler.
Generally speaking, if I opened into a file to add a va_marshaller, I just
set all of them.
Matthias Clasen [Wed, 5 Jun 2019 12:10:24 +0000 (12:10 +0000)]
Merge branch 'wip/matthiasc/shared-glyph-cache' into 'master'
Share the glyph cache
See merge request GNOME/gtk!912
Matthias Clasen [Wed, 5 Jun 2019 12:03:39 +0000 (12:03 +0000)]
Cosmetics
Rename some arguments, since atlases->atlases is awful.